Skip to main content

Java RESTful Engine Performance

This article outlines some Java RESTful Engine load tests that we ran.

Depending on your load, size of data, or the expected size of out put you will need a server with more RAM. If you believe you have enough memory on your server and are experiencing issues producing output, check the catalina.out logs for an out of memory exception. If you see that, you can try to follow the steps [here](https://crunchify.com/how-to-change-jvm-heap-setting-xms-xmx-of-tomcat/) to increase / decrease your heap size
info

Engine output performance when measured in pages per second is highly dependent on the amount of data on each page. In general a page with twice as much data can take up to twice as long to generate output.

Performance Tests

For these tests, we used two different "sized" virtual machines on AWS. These are the specifications of the VMs we used:

t2.smallt2.large
vCPU12
CPU Credits/ hour1236
Mem (GiB)28
StorageEBS-OnlyEBS-Only
Network PerformanceLow - ModerateModerate

The tests consisted of sending approximately 16 requests per second for 1 minutes (~1000 requests). We measured the time from the first request to the time of the final document becoming ready on the disk. So the time it takes to post and process 1000 requests. Here are the results we found after running the tests.

Performance Test Results

Version 22.4.*

t2.smallt2.large
Run 1 (Document/ second)1.632.75
Run 2 (Document/ second)1.672.62
Run 3 (Document/ second)1.522.60
Average (Document/ second)1.602.63